package com.springboot.blog.service.impl;


import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.payment.facetoface.models.AlipayTradePayResponse;
import com.alipay.easysdk.payment.page.models.AlipayTradePagePayResponse;
import com.springboot.blog.beans.BlogOrder;
import com.springboot.blog.beans.PageBlog;
import com.springboot.blog.beans.User;
import com.springboot.blog.config.utils.OrderUtil;
import com.springboot.blog.dao.OrderDao;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;

/**
 *  支付宝支付，业务实现
 *
 * @author wangziyang
 * @date 2020-09-08
 * */
@Service
public class OrderPayServiceImpl {

    //支付成功后要跳转的页面
    @Value("${alipay.returnUrl}")
    private String returnUrl;
    @Resource
    private OrderDao orderDao;

    /**
     *  下单支付
     * */
    public Object pay (String shopName,String bigDecimal) throws Exception {
        //调用sdk，发起支付
        AlipayTradePagePayResponse response = Factory.Payment
                //选择网页支付平台
                .Page()
                //调用支付方法，设置订单名称、我们自己系统中的订单号、金额、回调页面
                .pay(shopName , OrderUtil.getOrderNo(),bigDecimal, returnUrl);

        //这里的response.body，就是一个可以直接加载的html片段，
        // 这里为了简单我直接返回这个片段，前端直接
        return response.body;
    }

    public PageBlog<BlogOrder> pageOrder(Integer pageNo, Integer pageSize,String orderUsername) {
        PageBlog<BlogOrder> page = new PageBlog<>();
        //设置当前页面
        page.setPageNo(pageNo);

        //求当前页的开始索引
        int begin = (page.getPageNo()-1) * pageSize;
        //求当前页数据
        List<BlogOrder> items = orderDao.queryOrderForItems(begin,pageSize,orderUsername);
        //设置当前页数据
        page.setItems(items);
        return page;
    }
}
